#ifndef _C_ARRAY_H
#define _C_ARRAY_H
#include <stdlib.h>
#include <stdbool.h>
typedef struct Array{
    unsigned int size;
    unsigned int capacity;
    void** array;
}Array;

Array* ConstructArray(unsigned int capacity);
void DestructArray(Array* array);
bool InitArray(Array* array,unsigned int capacity);
void ReleaseArray(Array* array);
void Insert(Array* array,unsigned int pos,void* data);
void PushBack(Array* array,void* data);
void PushFront(Array* array,void* data);
void Erase(Array* array,unsigned int pos);
void PopBack(Array* array);
void PopFront(Array* array);
unsigned int Length(Array* array);
unsigned int Capacity(Array* array);
bool Empty(Array* array);
void Clear(Array* array);
void* At(Array* array,unsigned int pos);
void* Front(Array* array);
void* Back(Array* array);

#endif